/*
 * @lc app=leetcode.cn id=20 lang=c
 *
 * [20] 有效的括号
 */

// @lc code=start
bool isValid(char *s)
{
    int i = 0;
    char stack[5000] = {'\0'};

    while (*s != '\0')
    {
        switch (*s)
        {
        case '(':
        case '{':
        case '[':
            stack[i++] = *s;
            break;
        case ')':
            if (i == 0 || stack[--i] != '(')
            {
                return false;
            }
            break;
        case '}':
            if (i == 0 || stack[--i] != '{')
            {
                return false;
            }

            break;
        case ']':
            if (i == 0 || stack[--i] != '[')
            {
                return false;
            }
            break;
        default:
            return false;
        }
        s++;
    }
    return i == 0;
}
// @lc code=end
